"use strict";

function _typeof(obj) {
  "@babel/helpers - typeof";
  return (
    (_typeof =
      "function" == typeof Symbol && "symbol" == typeof Symbol.iterator
        ? function (obj) {
            return typeof obj;
          }
        : function (obj) {
            return obj &&
              "function" == typeof Symbol &&
              obj.constructor === Symbol &&
              obj !== Symbol.prototype
              ? "symbol"
              : typeof obj;
          }),
    _typeof(obj)
  );
}
function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;
    Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
  }
}
function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  Object.defineProperty(Constructor, "prototype", { writable: false });
  return Constructor;
}
function _defineProperty(obj, key, value) {
  key = _toPropertyKey(key);
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true,
    });
  } else {
    obj[key] = value;
  }
  return obj;
}
function _toPropertyKey(arg) {
  var key = _toPrimitive(arg, "string");
  return _typeof(key) === "symbol" ? key : String(key);
}
function _toPrimitive(input, hint) {
  if (_typeof(input) !== "object" || input === null) return input;
  var prim = input[Symbol.toPrimitive];
  if (prim !== undefined) {
    var res = prim.call(input, hint || "default");
    if (_typeof(res) !== "object") return res;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return (hint === "string" ? String : Number)(input);
}
var Computer = /*#__PURE__*/ (function () {
  // 构造器
  function Computer(name, price) {
    _classCallCheck(this, Computer);
    _defineProperty(this, "_a", 1);
    this.name = name;
    this.price = price;
  }
  // 原型方法
  _createClass(
    Computer,
    [
      {
        key: "showSth",
        value: function showSth() {
          console.log(
            "\u8FD9\u662F\u4E00\u53F0".concat(this.name, "\u7535\u8111")
          );
        },
        // 静态方法
      },
      {
        key: "a",
        get: function get() {
          return this._a;
        },
        set: function set(value) {
          this._a = value;
        },
      },
    ],
    [
      {
        key: "comStruct",
        value: function comStruct() {
          console.log("电脑由显示器，主机，键鼠组成");
        },
      },
    ]
  );
  return Computer;
})();
_defineProperty(Computer, "sta", 1);

const c1 = new Computer("huawei", 1);

console.log(c1);

// const object1 = {
//   a: "11",
//   valueOf() {
//     return "1";
//   },
//   toString() {
//     return {};
//   },
//   // [Symbol.toPrimitive](hint) {
//   //   return "1";
//   // },
// };

// console.log(String(object1));
